The present invention relates to a method for performing a status change on at least one computer from an actual condition to a target condition, the status change relating in particular to replacement or first-time commissioning of software or of a software package.
The use of software is subject to continuous further development, with the result that applications that already exist and are in operation must be adapted to suit new requirements (e.g., increased hardware performance) or upgraded. Consequently, the existing application in use has to be replaced by a later version, an upgrade/update or with a corrected version (patch).
There are basically several ways of installing software on a computer. Formerly, a set of diskettes was used, the first diskette generally containing a setup program and a compressed file. The decompressed file(s) is/are then copied to a destination directory on the target system. The setup program guides the user through the installation routine and can in some cases additionally modify certain configuration files of the target system.
Today, a CD can be used which enables a similar procedure to be followed and provides more storage space.
Additionally known is the use of shells which automatically extract an associated file tree and store it in a selectable directory. If software is not to be installed for the first time, but already installed software is to be reinstalled, there are basically two options:
1. After deinstalling the old package, the new package is completely reinstalled. The advantage of this method is that all the newly installed files also have de facto the same version, and errors due to erroneously unchanged files can be eliminated. The major disadvantage of this method is that it is very time-consuming.
2. No deinstallation takes place, but only the parts that are different in the new version are reinstalled. Although this is faster, the swapping of data between the old and new files often results in errors.
All the known installation techniques are certainly very time-intensive and require a lengthy period during which neither the old nor the new software can be run.
For particularly time-critical applications, such as in the telecommunications and database fields, time-optimized replacement of application software is indispensable in order not to disrupt operation of the entire system.
With regard to the abovementioned areas of use which require virtually continuous coverage of the application, it is unacceptable for the application to be inoperable for a lengthy period due to the necessary software replacement.
A highly time-optimized status change is not only critical for software replacement, however, but also applies if certain system variables are to be changed or if certain peripherals and/or hardware components are to be replaced by others, with the result that, for example, the use of other drivers becomes necessary. Basically, time-optimized replacement is necessary if other processes are using the current software to be replaced.
To date, the status in terms of software replacement has been implemented by taking the existing software out of operation, replacing it by installing new software and then re-starting the application and/or the system.
This method has been found to be very disadvantageous for the time-optimization reasons described above; the method for replacing software has until now been adopted from the general use of application software in other areas which have a much greater time tolerance. If, for example, a drawing program is to be replaced by a new version of the same, a brief unavailability of the application would be acceptable. However, this is not the case in the telecommunications field, particularly for carrier-grade systems, as these require maximum availability.
An object of the present invention is, therefore, to create a method allowing a time-optimized status change, in particular a time-optimized replacement of software applications, and one which can be automated. The object is, in particular, to create a method for replacing applications on individual computers in a multi-computer network.